package cn.zcy.linstner;

import cn.zcy.domain.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;

/**
 * 自定义监听器
 */
@Component
public class MyLinstner implements ApplicationListener<ContextRefreshedEvent> {
    @Autowired
    AnnotationConfigApplicationContext annotationConfigApplicationContext;
    //ContextRefreshedEvent Spring内置事件，容器启动完成后发布，可以用于容器启动后的一些扩展
    @Autowired
    private User user; // 获取 User Bean
    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {

        // 修改 User 对象的属性值
        user.setName("修改了属性");
        user.setAge(23);
        // 重新注册 User 类 (这通常不是必需的，因为我们已经通过 @Autowired 注入了 User)
//        annotationConfigApplicationContext.register(user.getClass());
        System.out.println("hello 你好，spirngIOC容器已经启动了。开始工作");
    }
}
